/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.uoc.tfc.exuoc.utils.seguretat;

import edu.uoc.tfc.exuoc.config.Config;
import edu.uoc.tfc.exuoc.utils.Eines;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.text.ParsePosition;
/**
 *
 * @author emili
 * Classe que ajudarà a filtrar i eliminar aquells caracters que es fan servir
 * per injectar codi SQL als SGBDD.
 */
public class InjeccioCodi {

    public InjeccioCodi(){}

    /**
     *  Caràcters filtrats = ";","'"
     * @param cad cadena a filtrar
     * @return cadena "neta" de caràcters maliciosos
     */
    public String netejar(Object c){
        String cad="";
        String cadNeta=Config.valorNullStr;
            
        if ( String.valueOf(c).isEmpty() )return Config.valorNullStr;

        if ( c instanceof String ){
            cad=c.toString();
            cadNeta=cad.replace("'", "`").replace(";", "");
        }

        else cadNeta=String.valueOf(c);

        return cadNeta;
    }

    
    public boolean comprovarData(String cad){
        boolean correcte=true;
        SimpleDateFormat sdf = new SimpleDateFormat(Config.FORMAT_DATA);
        sdf.setLenient(false);

        correcte=(sdf.parse(cad, new ParsePosition(0)) != null);

        return correcte;

    }


    public static String codificar(String cadena) throws UnsupportedEncodingException{
        String URL="";
        URL=java.net.URLEncoder.encode(cadena, "UTF-8");
        return URL;
    }

    public static String desCodificar(String cadena) throws UnsupportedEncodingException{
        String URL="";
        URL=java.net.URLDecoder.decode(cadena, "UTF-8");
        return URL;
    }




    public static void main (String[] args){
        InjeccioCodi i =new InjeccioCodi();
        /*String c1="Correcte";
        String c2="amb caracters maliciosos; select '';";
        String c3="123456";
        String c4="12;'3456";
        Contenidor con =new Contenidor("proves");
        Eines.escriu("nom:"+con);

        Eines.escriu(i.netejar(c1));
        Eines.escriu(i.netejar(c2));
        Eines.escriu(i.netejar(c3));
        Eines.escriu(i.netejar(c4));
        Eines.escriu(i.netejar(con));
        con.setNom(null);
        Eines.escriu(i.netejar(con));
        Eines.escriu(i.netejar(new Arxiu("hola","dss","/yyy/ddd/",100)));
        try {
            Eines.escriu(codificar("emili'"));
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(InjeccioCodi.class.getName()).log(Level.SEVERE, null, ex);
        }*/
    Eines.escriu(i.netejar("29/1/2012"));
    


    }
}
